/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controladores.Action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import AccesoBaseDatos.GatewayPublicaciones;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessage;
/**
 *
 * @author Franklin
 */
public class InsertarReferenciaAction extends org.apache.struts.action.Action {

        /* tenemos una instacia del formbean para sacar los datos */
   private Controladores.Form.InsertarReferenciaForm formulario;
   //esto son unas etiquetas que me sirven para redireccionar la pagina en la evaluacion de campos
   private final static String SUCCESS = "success";
   private final static String FAILURE = "failure";
   private final static String FALLACONEXION = "fallaConexion";

   ActionForward retorno;
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        
        formulario=(Controladores.Form.InsertarReferenciaForm) form;
        //guarda la pagina para la que se va a redireccionar
        retorno = new ActionForward();
        
        if(formulario.getNombrePublicacion().equals("")||formulario.getFechaPublicacion().equals("")||formulario.getNombreReferencia().equals("")){
            //Seteo el error
            ActionErrors errors = new ActionErrors();
            errors.add("Problema", new ActionMessage("errors.noNulos"));
            //almaceno el error
            saveErrors(request, errors);
            retorno = mapping.findForward(FAILURE);       
        }else{//crea la conexion
           GatewayPublicaciones gatewayPubli = new GatewayPublicaciones();
           boolean inserto = gatewayPubli.InsertarReferencia(formulario.getNombreReferencia(), formulario.getNombrePublicacion(), formulario.getFechaPublicacion(), formulario.getNombreRevista(), formulario.getAutores(), formulario.getVolumen(), formulario.getNumero());
           if(inserto == true){
               retorno = mapping.findForward(SUCCESS);
           }else{
               retorno = mapping.findForward(FALLACONEXION);
           }    
        }
        return retorno;//devuelve el lugar donde se debe devolver el control
    }
}
